Groovy তে নামকরা ফাংশন (Named Functions) এবং অ্যানোনিমাস ফাংশন (Anonymous Functions বা Closures) দুটি গুরুত্বপূর্ণ ধারণা। এগুলি কোডে নির্দিষ্ট কাজ করার জন্য ব্যবহৃত হয়, তবে তারা কীভাবে ডিফাইন এবং কল করা হয়, সে ক্ষেত্রে কিছু পার্থক্য রয়েছে।
এখানে নামকরা ফাংশন এবং অ্যানোনিমাস ফাংশন এর সম্পর্কে বিস্তারিত আলোচনা করা হলো।
একটি নামকরা ফাংশন (অথবা নামকরা মেথড) হলো এমন একটি ফাংশন যার একটি নির্দিষ্ট নাম থাকে এবং সেই নাম দিয়ে কোডে ফাংশনটি কল করা যায়। Groovy তে ফাংশন ডিফাইন করতে def
কীওয়ার্ড ব্যবহার করা হয়, এবং এটি প্যারামিটার সহ ফাংশন বা মেথড তৈরি করতে সাহায্য করে।
def functionName(parameters) {
// ফাংশনের শরীর
}
// নামকরা ফাংশন ডিফাইন করা
def greet(name) {
println "Hello, $name!"
}
// নামকরা ফাংশন কল করা
greet("Alice") // আউটপুট: Hello, Alice!
greet("Bob") // আউটপুট: Hello, Bob!
এখানে:
greet
একটি নামকরা ফাংশন যা name
প্যারামিটার নেয় এবং একটি গ্রীটিং বার্তা প্রিন্ট করে।greet
ফাংশনটি Alice
এবং Bob
প্যারামিটার দিয়ে কল করা হয়েছে।নামকরা ফাংশন একটি মানও রিটার্ন করতে পারে।
// নামকরা ফাংশন সহ রিটার্ন ভ্যালু
def add(a, b) {
return a + b
}
// ফাংশন কল করা এবং রিটার্ন ভ্যালু গ্রহণ করা
def result = add(5, 3)
println result // আউটপুট: 8
এখানে add
ফাংশনটি দুটি প্যারামিটার নিয়ে তাদের যোগফল রিটার্ন করছে।
একটি অ্যানোনিমাস ফাংশন (অথবা ক্লোজার) এমন একটি ফাংশন যা কোনও নাম ছাড়া ব্যবহৃত হয়। Groovy তে ক্লোজারগুলি সাধারণত এক্সপ্রেশন হিসাবে ব্যবহৃত হয় এবং অনেক ক্ষেত্রেই অন্য ফাংশনে প্যারামিটার হিসেবে পাঠানো হয়।
def closure = { parameters ->
// ক্লোজারের শরীর
}
{}
ক্লোজারের শরীর চিহ্নিত করে।parameters
হল সেই প্যারামিটার যা ক্লোজারে পাঠানো হয়।// একটি অ্যানোনিমাস ফাংশন (ক্লোজার) ডিফাইন করা
def greet = { name ->
println "Hello, $name!"
}
// ক্লোজার কল করা
greet("Alice") // আউটপুট: Hello, Alice!
greet("Bob") // আউটপুট: Hello, Bob!
এখানে:
greet
হল একটি ক্লোজার যা name
প্যারামিটার গ্রহণ করে এবং একটি গ্রীটিং বার্তা প্রিন্ট করে।greet
ক্লোজারটি Alice
এবং Bob
প্যারামিটার দিয়ে কল করা হয়েছে।ক্লোজারও রিটার্ন ভ্যালু দিতে পারে।
// একটি অ্যানোনিমাস ফাংশন (ক্লোজার) সহ রিটার্ন ভ্যালু
def add = { a, b ->
return a + b
}
// ক্লোজার কল করা এবং রিটার্ন ভ্যালু গ্রহণ করা
def result = add(5, 3)
println result // আউটপুট: 8
এখানে, add
ক্লোজারটি দুটি প্যারামিটার নিয়ে তাদের যোগফল রিটার্ন করছে।
ক্লোজারগুলি একে অপরের মধ্যে প্যারামিটার হিসেবে পাঠানো যেতে পারে। Groovy তে এটি খুবই সুবিধাজনক, বিশেষ করে যখন আপনি কালেকশন বা লিস্ট নিয়ে কাজ করছেন।
// একটি মেথড যা ক্লোজার প্যারামিটার হিসেবে গ্রহণ করে
def executeOperation(a, b, operation) {
return operation(a, b) // ক্লোজারটি এখানে কল হচ্ছে
}
// একটি অ্যানোনিমাস ফাংশন (ক্লোজার) ডিফাইন করা
def multiply = { a, b ->
return a * b
}
// মেথড কল করা এবং ক্লোজার পাঠানো
def result = executeOperation(5, 3, multiply)
println result // আউটপুট: 15
এখানে, multiply
ক্লোজারটি executeOperation
মেথডে প্যারামিটার হিসেবে পাঠানো হয়েছে এবং সেখানে তা ব্যবহার করা হয়েছে।
বৈশিষ্ট্য | নামকরা ফাংশন | অ্যানোনিমাস ফাংশন (ক্লোজার) |
---|---|---|
ডিফাইনেশন | একটি নির্দিষ্ট নাম থাকে | কোনো নাম থাকে না, কোডের মধ্যে ইনলাইন ব্যবহৃত হয় |
ব্যবহার | নির্দিষ্ট নাম দিয়ে ফাংশন কল করা হয় | ভেরিয়েবল বা প্যারামিটার হিসেবে ব্যবহৃত হয় |
ফ্লেক্সিবিলিটি | কম ফ্লেক্সিবল | উচ্চ ফ্লেক্সিবল, বাইরের ভেরিয়েবল অ্যাক্সেস করতে পারে |
রিটার্ন ভ্যালু | রিটার্ন ভ্যালু প্রদান করা যায় | রিটার্ন ভ্যালু প্রদান করা যায়, এবং রিটার্ন অপশনাল |
উদাহরণ | def add(a, b) { return a + b } | def add = { a, b -> return a + b } |
Groovy তে নামকরা ফাংশন এবং অ্যানোনিমাস ফাংশন (ক্লোজার) উভয়ই ব্যবহার করা যায়, এবং এগুলির মধ্যে পার্থক্য এবং সুবিধা অনুযায়ী আপনি কোড লিখতে পারবেন।
common.read_more